In computer programming, an Application Programming Interface (hereinafter “API”) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer. An API may be for a web-based system, operating system, database system, computer hardware or software library. An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables or remote calls. POSIX, Microsoft Windows API, the C++ Standard Template Library and Java APIs are examples of different forms of APIs. Documentation for the API is usually provided to facilitate usage.
An application server is a software framework that provides both facilities to create web applications and a server environment to run them. Application Server Frameworks contain a comprehensive service layer model. An application server acts as a set of components accessible to the software developer through an API defined by the platform itself. For Web applications, these components are usually performed in the same running environment as their web server(s), and their main job is to support the construction of dynamic pages. However, many application servers target much more than just Web page generation: they implement services like clustering, fail-over, and load-balancing, so developers can focus on implementing the business logic. In the case of Java application servers, the server behaves like an extended virtual machine for running applications, transparently handling connections to the database on one side, and, often, connections to the Web client on the other.
Existing applications may already have HTTP/HTTPS interfaces with their clients, but due to policy, security, or architectural requirements (like in health care or other similar industries) the application server cannot be made available on the internet. However, the internet, as commonly used, may separate offices or branches between the client and the server. As such, in communicating between various computers, servers, etc., when sending web resource calls or requests, the client and the server may be geographically and topologically separated in many situations, like in the health care or similar industries.
Currently, the only option is a virtual private network (“VPN”) that will tunnel all the traffic between the client and server, but for policy, security, or architectural requirements, a VPN may not be possible, like in health care or other similar industries.
Therefore, a need exists for an apparatus or method for sending and receiving web resource calls or request when the client and the server are geographically and topologically separated.
The instant disclosure of an API bridge for transporting a request from a client system to a server system, and method thereof, may be designed to address at least some of the issues discussed above.